package br.com.treelayer.ged.model.beans;

import java.util.Collection;
import java.util.Date;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.ManyToOne;
import javax.persistence.OneToMany;
import javax.persistence.OneToOne;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;

import org.jboss.seam.annotations.Name;

import br.com.treelayer.commons.model.beans.Persistente;

/**
 * 
 * @author Julio Cesar Silveira
 * @version 1.0
 * @created 02-dez-2007 19:54:15
 */
@Entity( name="documento" )
@Name( value="documento" )
public class Documento extends Persistente{

	/**
	 * 
	 */
	private static final long serialVersionUID = 7561597484176266779L;

	private String numero;

	private Imagem imagem;

	private Date data;
	
	private Modulo modulo;

	private Collection<Propriedade> propriedades;

	
	/**
	 * @return the numero
	 */
	public String getNumero() {
		return numero;
	}

	/**
	 * @param numero the numero to set
	 */
	public void setNumero(String numero) {
		this.numero = numero;
	}

	/**
	 * @return the imagem
	 */
	@OneToOne( optional=false )
	public Imagem getImagem() {
		return imagem;
	}

	/**
	 * @param imagem the imagem to set
	 */
	public void setImagem(Imagem imagem) {
		this.imagem = imagem;
	}

	/**
	 * @return the data
	 */
	@Column( name="data" )
	@Temporal( TemporalType.DATE )
	public Date getData() {
		return data;
	}

	/**
	 * @param data the data to set
	 */
	public void setData(Date data) {
		this.data = data;
	}

	/**
	 * @return the propriedades
	 */
	@OneToMany( targetEntity=Propriedade.class, mappedBy="documento")
	public Collection<Propriedade> getPropriedades() {
		return propriedades;
	}

	/**
	 * @param propriedades the propriedades to set
	 */
	public void setPropriedades(Collection<Propriedade> propriedades) {
		this.propriedades = propriedades;
	}

	/**
	 * @return the modulo
	 */
	@ManyToOne( optional=false )
	public Modulo getModulo() {
		return modulo;
	}

	/**
	 * @param modulo the modulo to set
	 */
	public void setModulo(Modulo modulo) {
		this.modulo = modulo;
	}

}